<?php
/**

 //  [DoYouHaoBaby!] Init APP - wedoit
 //  +---------------------------------------------------------------------
 //
 //  “Copyright”
 //  +---------------------------------------------------------------------
 //  | (C) 2010 - 2099 http://doyouhaobaby.net All rights reserved.
 //  | This is not a free software, use is subject to license terms
 //  +---------------------------------------------------------------------
 //
 //  “About This File”
 //  +---------------------------------------------------------------------
 //  | wedoit Index控制器
 //  +---------------------------------------------------------------------

*/

!defined('DYHB_PATH') && exit;

class IndexController extends InitController{

	public function index(){
		$nTotalRecord=TaskModel::F()->all()->getCounts();

		// 前台日志列表分页数量
		$nEverynum=5;

		// 使用分页类
		$oPage=Page::RUN($nTotalRecord,$nEverynum,G::getGpc('page','G'));
		$sPageNavbar=$oPage->P('pagination');

		// 获取数据列表
		$arrTaskLists=TaskModel::F()
					->all()
					->order('task_id DESC')
					->limit($oPage->returnPageStart(),$nEverynum)
					->query();

		$this->assign('arrTaskLists',$arrTaskLists);
		$this->assign('sPageNavbar',$sPageNavbar);
		$this->display();
	}

	public function add(){
		// 判断是否已经登录
		if($GLOBALS['___login___']===false){
			$this->E('你没有登录');
		}

		$this->display();
	}

	public function add_task(){
		$oUser=UserModel::F('user_id=?',$GLOBALS['___login___']['user_id'])->query();

		// 通过用户对象创建任务
		$oTask=$oUser->createTask(G::getGpc('task_subject','P'),G::getGpc('task_description','P'));

		// 保存并重定向浏览器
		$oTask->save();
		if($oTask->isError()){
			$this->E($oTask->getErrorMessage());
		}else{
			$this->assign('__JumpUrl__',Dyhb::U('index/index'));
			$this->S('添加任务成功');
		}
	}

	public function update_task(){
		// 判断是否已经登录
		if($GLOBALS['___login___']===false){
			$this->E('你没有登录');
		}

		$nTaskId=intval(G::getGpc('id'));
		if(!empty($nTaskId)){
			$oTask=TaskModel::F('task_id=?',$nTaskId)->query();
			if(empty($oTask['task_id'])){
				$this->E('任务不存在');
			}else{
				if($GLOBALS['___login___']['user_id']!=$oTask['user_id']){
					$this->E('你不能编辑别人的任务');
				}else{
					$this->assign('oTask',$oTask);
					$this->display();
				}
			}
		}else{
			$this->E('你没有选择任务');
		}
	}

	public function update_the_task(){
		// 判断是否已经登录
		if($GLOBALS['___login___']===false){
			$this->E('你没有登录');
		}

		$nId=intval(G::getGpc('id'));

		$oTask=TaskModel::F('task_id=?',$nId)->query();
		if(empty($oTask['task_id'])){
			$this->E('任务不存在');
		}else{
			if($GLOBALS['___login___']['user_id']!=$oTask['user_id']){
				$this->E('你不能编辑别人的任务');
			}else{
				$oTask->save(0,'update');
				if($oTask->isError()){
					$this->E($oTask->getErrorMessage());
				}
				$this->S('任务更新成功');
			}
		}
	}

	public function do_task(){
		// 判断是否已经登录
		if($GLOBALS['___login___']===false){
			$this->E('你没有登录');
		}

		$nTaskId=intval(G::getGpc('id'));

		if(!empty($nTaskId)){
			$oTask=TaskModel::F('task_id=?',$nTaskId)->query();
			if(empty($oTask['task_id'])){
				$this->E('任务不存在');
			}else{
				if($GLOBALS['___login___']['user_id']!=$oTask['user_id']){
					$this->E('你不能做别人的任务');
				}else{
					if($oTask['task_is_completed']==1){
						$this->E('任务已经完成了，你不需要重复做任务！');
					}
					$this->assign('oTask',$oTask);
					$this->display();
				}
			}
		}else{
			$this->E('你没有选择任务');
		}
	}

	public function do_the_task(){
		// 判断是否已经登录
		if($GLOBALS['___login___']===false){
			$this->E('你没有登录');
		}

		$nId=intval(G::getGpc('id'));

		$oTask=TaskModel::F('task_id=?',$nId)->query();
		if(empty($oTask['task_id'])){
			$this->E('任务不存在');
		}else{
			if($GLOBALS['___login___']['user_id']!=$oTask['user_id']){
				$this->E('你不能做别人的任务');
			}else{
				$oTask->save(0,'update');
				if($oTask->isError()){
					$this->E($oTask->getErrorMessage());
				}
				$this->assign('__JumpUrl__',Dyhb::U('index/index'));
				$this->S('任务已完成');
			}
		}
	}

	public function delete_task(){
		// 判断是否已经登录
		if($GLOBALS['___login___']===false){
			$this->E('你没有登录');
		}

		$nTaskId=intval(G::getGpc('id'));
		if(!empty($nTaskId)){
			$oTask=TaskModel::F('task_id=?',$nTaskId)->query();
			if(empty($oTask['task_id'])){
				$this->E('任务不存在');
			}else{
				if($GLOBALS['___login___']['user_id']!=$oTask['user_id']){
					$this->E('你不能删除别人的任务');
				}else{
					$oModelMeta=TaskModel::M();

					// 执行删除
					$oModelMeta->deleteWhere('task_id=?',$nTaskId);

					// 开始模型Meta中的错误，如果没有那么路过
					if($oModelMeta->isError()){
						$this->E($oModelMeta->getErrorMessage());
					}else{
						$this->S('删除任务成功');
					}
				}
			}
		}else{
			$this->E('你没有选择任务');
		}
	}

}
